package queens.util;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Utilidades {
	
	private static final String DATE_FORMAT          = "yyyy-MM-dd";
	private static final SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
	
	public static String trim(String cadena){
		if(cadena == null){
			return "";
		}else if("".equals(cadena)){
			return "";
		}else{
			return cadena.trim();
		}
	}

	/**
	 * Convierte una fecha java.util.Date a java.sql.Date
	 * @param date
	 * @return java.sql.Date
	 */
	public static java.sql.Date utilToSQL(Date date){
		if (null != date){
			return new java.sql.Date(date.getTime());
		}
		else return null;
	
	}
	
	/**
	 * Devuelve un Date a partir de un String con el formato yyyy-MM-dd
	 * @param s
	 * @return Date
	 */
	public static Date getDate(String s){
		try{
			return new Date(dateFormat.parse(s).getTime()); 
		}catch(Exception e){
			return null;
		}
	}
	
	/**
	 * Devuelve un String con el formato yyyy-MM-dd a partir de una fecha
	 * @param date
	 * @return String
	 */
	public static String getDate(Date date){
		if (null == date){
			return null;
		}
		return dateFormat.format(date);
	}
	
	/**
	 * Obtiene el stacktrace de una excepción
	 * @param e
	 * @return
	 */
	public static String printStackTrace(Exception e){
		Writer trace = new StringWriter();
		e.printStackTrace(new PrintWriter(trace));
		return trace.toString();
	}
}